const multer = require('@koa/multer')  // 静态资源上传的方法

let COS = require('cos-nodejs-sdk-v5'); // 腾讯云
const result = require('../jian-config/yichang-results');


// 配置上传文件 1. 找到自己的目录 2. 更改一下文件名
const storage = multer.diskStorage({ // 磁盘引擎存储方法
    destination: function (req, file, cb) {
        cb(null, 'tengxunyun-cos/images') // 存储前端传来的静态文件
    },
    // 更改照片文件
    filename: (req, file, cb) => {
        // 1670383765754-58008788.jpg
        const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9) + '.' + file.originalname.split('.')[1]
        // file.originalname.split('.')[1] // 截取后缀名 jpg
        cb(null, uniqueSuffix)
    }
})


// SECRETID 和 SECRETKEY请登录 https://console.cloud.tencent.com/cam/capi 进行查看和管理
// 密钥
var cos = new COS({
    SecretId: 'AKIDd4FmEbkgNq3kQs4zeEG7i4C6mDPTVO9f',
    SecretKey: 'MQQ3Xr6D4j6D7qHdlrngQ1QaVEmALKAo',
    Protocol: 'https:' // 更改http为https，比较安全
});

// 上传腾讯云服务器

const Bucket = 'dianchan-1315721788' // 存储桶名称
const Region = 'ap-guangzhou' // 存储桶地址

let cosfun = function (filename, path) {
    return new Promise((resolve, rejcet) => {
        cos.uploadFile({
            Bucket, /* 必须 */
            Region,    /* 必须 */
            Key: 'diancan/image/' + filename,  /* 必须   腾讯云的文件夹*/
            FilePath: path, // 本地的文件夹下
        }
        )
            .then((result) => {
                resolve(result.Location)
            }).catch((err) => {
                rejcet(err)
            });
    })
}
// 二进制图片上传腾讯云 
let buffer = function (filename, path) {
    return new Promise((resolve, rejcet) => {
        cos.putObject({
            Bucket, /* 必须 */
            Region,    /* 必须 */
            Key: 'diancan/image/' + filename,  /* 必须   腾讯云的文件夹*/
            Body: Buffer.from(path), // 二进制图片数据
        })  
            .then((result) => {
                resolve(result.Location)
            }).catch((err) => {
                rejcet(err)
            });
    })
}



const upload = multer({ storage: storage })

module.exports = { upload, cosfun, buffer }
